home *** CD-ROM | disk | FTP | other *** search
- /* */
- /* FrameNamer v1 */
- /* */
- /* by Carmen Rizzolo */
- /* */
-
- Options Results
- Address 'OpalPaint_Rexx'
-
- Version
- Parse Var Result VerThingy ' ' OpalName ' ' VersionNum ' ' DateNum
-
- If Left(VersionNum,3) < 2.3 Then Do
- AskBool 'It appears that you are using OpalPaint v' || VersionNum || '\n\nFrameNamer requires OpalPaint v2.3 or higher\n\nShall I continue?'
- If Result = 0 Then Do
- Okay 'Exiting...'
- Exit
- End
- End
-
- AnimPathDefault = "Pathname"
- Zero = '0'
- GoBool = 1
-
- Menu DISABLE
-
- Call ConfirmFrameNamer()
- Call GetAnimPath()
- Call GetSourceFormat()
- Call GetDestinationFormat()
- Call GetStartFrame()
- Call GetEndFrame()
-
- If SourceRoot = DestRoot & SourceNumberMode = DestNumberMode & SourceExt = DestExt Then GoBool = 0
-
- If GoBool = 1 Then Do
- Call VerifyFrames()
- Call RenameFrames()
- Call AllDone()
- End
-
- If GoBool = 0 Then Do
- Call NoChanges()
- End
-
- Exit
-
- ConfirmFrameNamer:
- Address 'OpalPaint_Rexx'
-
- ReqBuild '420 130 " "'
- AddBox '10 10 400 110'
- AddBox '15 15 5 5 Raised'
- AddBox '-20 15 5 5 Raised'
- AddBox '15 -20 5 5 Raised'
- AddBox '-20 -20 5 5 Raised'
- AddBox '47 -53 106 31'
- AddBox '-153 -53 106 31'
- AddHeading 'CenterX 20 "FrameNamer v1"'
- AddHeading 'CenterX 35 "an Arexx script for OpalPaint v2.3 or higher"'
- AddHeading 'CenterX 45 "by Carmen Rizzolo"'
- AddGadget 'Button YesButton 50 -25 Medium "Continue"'
- AddGadget 'Button NoButton -50 -25 Medium "Quit"'
-
- Request NoOK NoCancel
-
- GadgetStatus NoButton
- If Result = 1 Then Do
- Exit
- End
- Return
-
- GetAnimPath:
- Address 'OpalPaint_Rexx'
- PathWarn = 1
-
- Do Forever
- LeaveBool = 1
- ReqBuild '450 161 "Choose animation pathname"'
- AddBox '10 23 430 105'
- AddText 'CenterX 29 "NOTE: Pathnames must end with a / character"'
-
- AddText 'CenterX 50 "Pathname"'
- AddGadget 'String ReqAnimPathName CenterX 60 Large'
- AddGadget 'Button SourceReq 25 60 80 20 " "'
- AddBox '22 57 86 26'
- AddHeading '29 67 "REQUESTOR"'
-
- AddGadget 'Button OKButton CenterX -5 Medium "Proceed"'
-
- InitGadget 'ReqAnimPathName ' || AnimPathDefault
-
- Request NoOK NoCancel
-
- GadgetStatus ReqAnimPathName
- AnimPathName = Result
-
- GadgetStatus SourceReq
- If Result = 1 Then Do
- If PathWarn = 1 Then Do
- ReqBuild '369 76 " "'
- AddBox '5 5 358 65'
- AddText 'CenterX 10 "NOTE: You are about to use a file requestor"'
- AddText 'CenterX 20 "to choose a PATHNAME. Do not select any"'
- AddText 'CenterX 30 "filenames. Get the pathname only!"'
- AddGadget 'Button Okeedoke CenterX 40 Medium "Proceed"'
- Request NoOK NoCancel
- PathWarn = 0
- End
- AskFileName 'Get SOURCE animation PATHNAME' "OpalPaint:" ''
- AnimPathName = Result
- End
-
- If Right(AnimPathName,1) ~= '/' Then AnimPathName = AnimPathName || '/'
-
- AnimPathDefault = AnimPathName
-
- Finder = Exists(AnimPathName)
- If Finder = 1 Then Leave
- If Finder = 0 Then Okay 'ERROR: Drawer not found! Try agian...'
- End
-
- Return AnimPathName
-
- GetSourceFormat:
- Address 'OpalPaint_Rexx'
- ReqBuild '319 245 "Choose format of SOURCE names"'
- AddBox '5 25 100 65'
- AddBox '109 25 100 65'
- AddBox '213 25 100 65'
- AddHeading '40 30 "Root"'
- AddHeading 'CenterX 30 "Number"'
- AddHeading '230 30 "Extension"'
-
- AddGadget 'String RootGad 11 55 75 20'
- AddGadget 'Cycle NumberGad 122 55 72 20 * xx xxx xxxx xxxxx'
- AddGadget 'String ExtGad 219 55 75 20'
-
- AddText 'CenterX 100 "Remember to put a period in the text"'
- AddText 'CenterX 110 "field if your root/extension is"'
- AddText 'CenterX 120 "sepatated by aperiod."'
- AddText 'CenterX 130 "Examples: pic.0001 005.IFF"'
-
- AddText 'CenterX 145 "The number format of * means the"'
- AddText 'CenterX 155 "number of digits change as the number"'
- AddText 'CenterX 165 "requires it. All other options have"'
- AddText 'CenterX 175 "a FIXED number of digits."'
-
- AddText 'CenterX 190 "Leave the root or extension blank if"'
- AddText 'CenterX 200 "they are not needed."'
-
- AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
-
- InitGadget 'RootGad "pic."'
- InitGadget 'NumberGad "xxxx"'
-
- Request NoOK NoCancel
-
- GadgetStatus RootGad
- SourceRoot = Result
-
- GadgetStatus NumberGad
- If Result = "*" Then SourceNumberMode = 1
- If Result = "xx" Then SourceNumberMode = 2
- If Result = "xxx" Then SourceNumberMode = 3
- If Result = "xxxx" Then SourceNumberMode = 4
- If Result = "xxxxx" Then SourceNumberMode = 5
-
- GadgetStatus ExtGad
- SourceExt = Result
-
- Return SourceRoot SourceNumberMode SourceExt
-
- GetDestinationFormat:
- Address 'OpalPaint_Rexx'
- ReqBuild '319 245 "Choose format of DESTINATION names"'
- AddBox '5 25 100 65'
- AddBox '109 25 100 65'
- AddBox '213 25 100 65'
- AddHeading '40 30 "Root"'
- AddHeading 'CenterX 30 "Number"'
- AddHeading '230 30 "Extension"'
-
- AddGadget 'String RootGad 11 55 75 20'
- AddGadget 'Cycle NumberGad 122 55 72 20 * xx xxx xxxx xxxxx'
- AddGadget 'String ExtGad 219 55 75 20'
-
- AddText 'CenterX 100 "Remember to put a period in the text"'
- AddText 'CenterX 110 "field if your root/extension is"'
- AddText 'CenterX 120 "sepatated by aperiod."'
- AddText 'CenterX 130 "Examples: pic.0001 005.IFF"'
-
- AddText 'CenterX 145 "The number format of 1 means the"'
- AddText 'CenterX 155 "number of digits change as the number"'
- AddText 'CenterX 165 "requires it. All other options have"'
- AddText 'CenterX 175 "a FIXED number of digits."'
-
- AddText 'CenterX 190 "Leave the root or extension blank if"'
- AddText 'CenterX 200 "they are not needed."'
-
- AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
-
- InitGadget 'RootGad "pic."'
- InitGadget 'NumberGad "xxxx"'
-
- Request NoOK NoCancel
-
- GadgetStatus RootGad
- DestRoot = Result
-
- GadgetStatus NumberGad
- If Result = "*" Then DestNumberMode = 1
- If Result = "xx" Then DestNumberMode = 2
- If Result = "xxx" Then DestNumberMode = 3
- If Result = "xxxx" Then DestNumberMode = 4
- If Result = "xxxxx" Then DestNumberMode = 5
-
- GadgetStatus ExtGad
- DestExt = Result
-
- Return DestRoot DestNumberMode DestExt
-
- GetIFF:
- Address 'OpalPaint_Rexx'
-
- If NumberMode = 1 Then Do
- IFF = Root || A || Ext
- End
-
- If NumberMode = 2 Then Do
- IFF = Root || Zero || A || Ext
- If A < 100 & A > 9 Then IFF = Root || A || Ext
- If A > 99 Then Do
- Okay 'FATAL ERROR! This number format does not allow numbers\nhigher than 99!\n\nExiting...'
- Exit
- End
- End
-
- If NumberMode = 3 Then Do
- IFF = Root || Zero || Zero || A || Ext
- If A < 1000 & A > 99 Then IFF = Root || A || Ext
- If A < 100 & A > 9 Then IFF = Root || Zero || A || Ext
- If A > 999 Then Do
- Okay 'FATAL ERROR! This number format does not allow numbers\nhigher than 999!\n\nExiting...'
- Exit
- End
- End
-
- If NumberMode = 4 Then Do
- IFF = Root || Zero || Zero || Zero || A || Ext
- If A < 10000 & A > 999 Then IFF = Root || A || Ext
- If A < 1000 & A > 99 Then IFF = Root || Zero || A || Ext
- If A < 100 & A > 9 Then IFF = Root || Zero || Zero || A || Ext
- If A > 9999 Then Do
- Okay 'FATAL ERROR! This number format does not allow numbers\nhigher than 9999!\n\nExiting...'
- Exit
- End
- End
-
- If NumberMode = 5 Then Do
- IFF = Root || Zero || Zero || Zero || Zero || A || Ext
- If A < 100000 & A > 9999 Then IFF = Root || A || Ext
- If A < 10000 & A > 999 Then IFF = Root || Zero || A || Ext
- If A < 1000 & A > 99 Then IFF = Root || Zero || Zero || A || Ext
- If A < 100 & A > 9 Then IFF = Root || Zero || Zero || Zero || A || Ext
- If A > 99999 Then Do
- Okay 'FATAL ERROR! This number format does not allow numbers\nhigher than 99999!\n\nExiting...'
- Exit
- End
- End
-
- Return IFF
-
- GetDestIFF:
-
- Return
-
- GetStartFrame:
- Address 'OpalPaint_Rexx'
- ReqBuild '210 97 "Enter Start Frame Number"'
- AddBox '5 25 199 39'
-
- AddGadget 'Integer StartGad CenterX 35 50 10 1 9999'
-
- AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
- Request NoOK NoCancel
-
- GadgetStatus StartGad
- StartFrame = Result
-
- Return StartFrame
-
- GetEndFrame:
- Address 'OpalPaint_Rexx'
- ReqBuild '210 97 "Enter Final Frame Number"'
- AddBox '5 25 199 39'
-
- AddGadget 'Integer EndGad CenterX 35 50 10 ' || StartFrame || ' 9999'
-
- AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
- InitGadget EndGad (StartFrame + 1)
- Request NoOK NoCancel
-
- GadgetStatus EndGad
- EndFrame = Result
-
- Return EndFrame
-
- VerifyFrames:
- Address 'OpalPaint_Rexx'
- Menu ENABLE
- DisplayStatus 'Verify...'
- Do A = StartFrame to EndFrame
-
- NumberMode = SourceNumberMode
- Root = SourceRoot
- Ext = SourceExt
- Call GetIFF()
- SourceIFF = IFF
-
- NumberMode = DestNumberMode
- Root = DestRoot
- Ext = DestExt
- Call GetIFF()
- DestIFF = IFF
-
- Finder = Exists(AnimPathName || SourceIFF)
- If Finder = 0 Then Do
- Okay 'FATAL ERROR! ' || AnimPathName || SourceIFF || ' not found!\n\nExiting...'
- Exit
- End
- Finder = Exists(AnimPathName || DestIFF)
- If Finder = 1 & DestNumberMode ~= 1 Then Do
- Okay 'FATAL ERROR! A ' || AnimPathName || DestIFF || ' already exists!\n\nExiting...'
- Exit
- End
- End
- Return
-
- RenameFrames:
- Address 'OpalPaint_Rexx'
- DisplayStatus 'Rename...'
- Do A = StartFrame to EndFrame
-
- NumberMode = SourceNumberMode
- Root = SourceRoot
- Ext = SourceExt
- Call GetIFF()
- SourceIFF = IFF
-
- NumberMode = DestNumberMode
- Root = DestRoot
- Ext = DestExt
- Call GetIFF()
- DestIFF = IFF
-
- If SourceIFF ~= DestIFF Then Do
- Address Command
- 'Rename ' || AnimPathName || SourceIFF || ' ' || AnimPathName || DestIFF || ' QUIET'
- End
- If SourceIFF = DestIFF & DestNumberMode ~= 1 Then Do
- Address 'OpalPaint_Rexx'
- Okay 'FATAL ERROR! ' || AnimPathName || DestIFF || ' already exists!\n\nExiting...'
- End
-
- End
- Return
-
- AllDone:
- Address 'OpalPaint_Rexx'
-
- Menu DISABLE
-
- ReqBuild '200 65 "Operation Complete!"'
-
- AddGadget 'Button OkayButton CenterX -5 Medium "Quit"'
- Request NoOK NoCancel
-
- Return
-
- NoChanges:
- Address 'OpalPaint_Rexx'
-
- Menu DISABLE
-
- ReqBuild '200 65 "No changes made."'
-
- AddGadget 'Button OkayButton CenterX -5 Medium "Quit"'
- Request NoOK NoCancel
-
- Return
-